/**
 * 返回数据下标集
 * @param arr 表格的dataSource;
 * @param key 需要查重的column；
 * 前提：dataSource要按照column的值排序
 * 用途：查重，即找出column的值在dataSource中的下标。相同项，下标放在一个集合；其他的一项一个集合。
 * @returns 最后返回一个二维下标集合；例:[[0],[1,2],[3],[4,5,6]]
 */
const findColmunValIndex = (arr: any[], key: string) => {
    let repeatMap = new Map();
    let obj = {};
    for (let i = 0; i < arr.length; i++) {
        if (!repeatMap.has(arr[i][key])) {
            repeatMap.set(arr[i][key], [i]);
        } else {
            repeatMap.get(arr[i][key]).push(i);
        }
    }
    //需要key的结果
    // for (const curKey of repeatMap.keys()) {
    //   if((repeatMap.get(curKey)).length > 1){
    //     obj[curKey] = repeatMap.get(curKey)
    //   }
    // }
    // return obj

    // 不需要key的集合
    return [...repeatMap.values()];
};

/**
 * 找出当前column重复出现的值的下标集合
 * @param data 表格的dataSource;
 * @param column 需要查重的column；
 * @returns [[1,2],[4,5,6]]
 */
export const findColmunRepeatValIndexArr = (data: any[], column: string) => {
    return findColmunValIndex(data, column).filter((item) => item.length > 1); // [[1,2],[4,5,6]]
};

/**
 * 找出当前column值重复出现的下标集合
 * @param index customCell的index参数
 * @param arr 重复出现的值的下标集合
 * @returns [[1,2]]或者[[4,5,6]]或者undefined
 */
export const checkIsHave = (index: number, arr: any[]) => {
    if (!arr[0]) return [];
    return arr.filter((item) => item.includes(index))[0]; // [[1,2]]或者[[4,5,6]]或者undefined
};
